#include <stdio.h>
#include <stdlib.h>
#include "list.h"
#include <string.h>

void add_book(LinkedList* list,FILE *f)//把新加的书放入链表
{   
    int number = list->nodenum;
    int number1 =number+1;
    printf("请输入你要增添的图书：\n");
    printf("格式：(%d 书名 作者)\n",number1);
    int num;
    char name[50]={0};
    char writer[50]={0};
    scanf("%d %s %s",&num,name,writer);
    Node* p = findElement(list,name);
    if(p)
    {   
        printf("目前图书馆已经有这本%s了,作者为%s\n",p->name,p->writer);
    }
    else
    {   
        fprintf(f,"%d %s %s",num,name,writer);//把输出的字符输出到文档里，也是一个意思
        fprintf(f,"\n");
        fflush(f);
        insert_head_doublelist(list,num,name,writer);//输入链表
        printf("已添加\n");
        printf("\n");
    }
    
        
    
}

void look_book(LinkedList* list,FILE *f)
{   
    printf("目前的图书有：(有名字的代表已被对应用户借走)\n");
    printList(list);
}

void find_book(LinkedList* list,FILE *f)
{   
    char name[50]={0};
    printf("请输入你需要查找的书的名字\n");
    scanf("%s",name);
    Node* p =findElement(list,name);
    if (p) 
    {   
        printf("目前图书馆中有这本书:%s\n",name);
        printf("以下是它的详细信息\n");
        printf("编号\t书名\t作者\n");
        printf("%d\t%s\t%s\n",p->num,p->name,p->writer);
        printf("\n");
    }
    else
    {
        printf("目前图书馆中没有这本书,有可能被别人借走,请稍后再来\n");
        printf("\n");
    }
}

void borrow_book(LinkedList* list,FILE *f)
{   
    char name[50]={0};
    char writer[50]={0};
    printf("请输入你需要借走的书的名字和作者\n");
    scanf("%s %s",name,writer);
    Node* p =findElement(list,name);
    Node* p1=findElement(list,writer);
    if (p||p1) 
    {   
        char name1[50]={0};
        printf("请输入你的姓名\n");
        scanf("%s",name1);
        modifyElement1(list, name, name1);
        printf("用户为：%s已成功借取书本%s\n",name1,name);
        printf("\n");
    }
    else
    {
        printf("目前图书馆中没有%s这本书,您无法借走,有可能被别人借走,请稍后再来\n",name);
        printf("\n");
    }
}
void ret_book(LinkedList* list,FILE *f)
{
    char name[50]={0};
    char writer[50]={0};
    printf("请输入你需要还的书的名字和作者(用空格隔开)\n");
    scanf("%s %s",name,writer);
    char name2[50]={0};
    printf("请输入你的姓名\n");
    scanf("%s",name2);
    if (findElement(list,name2)) 
    {
        modifyElement2(list, name2, name,writer);
        printf("用户为：%s已成功归还书本%s\n",name2,name);
        printf("\n");
    }
    else
    {
        printf("没有找到这位借书人,您没有要还的书\n");
        printf("\n");
    }
}

void modify_book(LinkedList* list,FILE *f)
{
    char name[50]={0};
    char name1[50]={0};
    char writer1[50]={0};
    int i = 0;
    printf("请问是需要修改书本的名字还是作者(1为书名,2为作者)\n");
    scanf("%d",&i);
    if(i==1)
    {   
        char name[50]={0};
        printf("请输入你要修改的书名\n");
        scanf("%s",name);
        printf("请输入你要修改成的书名\n");
        scanf("%s",name1);
        Node* p=findElement(list,name);
        if (p) 
        {
            modifyElement3(list,name, name1);
            printf("%s以及作者%s已修改成功为%s以及作者%s!!!\n",name,p->writer,p->name,p->writer);
            printf("感谢你的纠正!!!\n");
            printf("\n");
        }
        else
        {
            printf("目前图书馆中没有这本书,您无法修改,有可能被别人借走,请稍后再来\n");
            printf("\n");
        }
    }
    else if (i ==2)
    {   
        char writer[50]={0};
        printf("请输入你要修改的作者\n");
        scanf("%s",writer);
        printf("请输入你要修改成的作者\n");
        scanf("%s",writer1);
        Node* p=findElement1(list,writer);
        if (p) 
        {
            modifyElement4(list,writer,writer1);
            printf("%s以及作者%s已修改成功为%s以及作者%s!!!\n",p->name,writer,p->name,p->writer);
            printf("感谢你的纠正!!!\n");
            printf("\n");
        }
        else
        {
            printf("目前图书馆中没有这本书,您无法修改,有可能被别人借走,请稍后再来\n");
            printf("\n");
        }
    }

}

void delete_book(LinkedList* list,FILE *f)
{
    char name[50]={0};
    int num=0;
    printf("请输入你需要删除的书编号和名字(用空格隔开)\n");
    scanf("%d %s",&num,name);
    if (findElement(list,name)) 
    {   
        deleteElement(list, name);
        printf("已成功删除编号为%d的%s\n",num,name);
        printf("\n");
    }
    else
    {
        printf("目前图书馆中没有这本书,您无法删除,有可能被别人借走,请稍后再来\n");
        printf("\n");
    }
}